
/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

kubernetes 集群
kubernetes 集群服务

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/

#import <Foundation/Foundation.h>

#import <JDCloudOCSDKKubernetes/KubernetesExecutor.h>


/// 集群摘除工作节点组并删除工作节点组
@implementation  KubernetesDeleteNodeGroupExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/regions/{regionId}/nodeGroups/{nodeGroupId}";
    return self;
}
@end

/// 查询工作节点组列表
@implementation  KubernetesDescribeNodeGroupsExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/nodeGroups";
    return self;
}
@end

/// 查询可升级的节点版本
@implementation  KubernetesDescribeUpgradableNodeVersionsExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/clusters/{clusterId}/upgradableNodeVersions";
    return self;
}
@end

/// 创建工作节点组&lt;br&gt;
   /// - 要求集群状态为running
   /// 
@implementation  KubernetesCreateNodeGroupExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/regions/{regionId}/nodeGroups";
    return self;
}
@end

/// 设置集群组件
@implementation  KubernetesSetAddonsExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/regions/{regionId}/clusters/{clusterId}:setAddons";
    return self;
}
@end

/// 修改工作节点组的 名称 和 描述&lt;br&gt;name 和 description 必须要指定一个
@implementation  KubernetesModifyNodeGroupExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PATCH";
    self.url = @"/regions/{regionId}/nodeGroups/{nodeGroupId}";
    return self;
}
@end

/// 删除集群，以及集群的所有node节点，网络，云盘等所有资源。
@implementation  KubernetesDeleteClusterExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/regions/{regionId}/clusters/{clusterId}";
    return self;
}
@end

/// Deprecated 建议使用 setAddons 接口 &lt;br&gt;设置用户自定义监控状态
@implementation  KubernetesSetUserMetricsExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/regions/{regionId}/clusters/{clusterId}:setUserMetrics";
    return self;
}
@end

/// 调整工作节点组实例数量
@implementation  KubernetesSetNodeGroupSizeExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/regions/{regionId}/nodeGroups/{nodeGroupId}:setNodeGroupSize";
    return self;
}
@end

/// 查询 kubernetes 集群服务配置信息
@implementation  KubernetesDescribeServerConfigExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/serverConfig";
    return self;
}
@end

/// 触发升级
@implementation  KubernetesUpgradeClusterExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/regions/{regionId}/clusters/{clusterId}:upgradeCluster";
    return self;
}
@end

/// 查询版本信息
@implementation  KubernetesDescribeVersionsExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/versions";
    return self;
}
@end

/// 设置工作节点组的自动修复
@implementation  KubernetesSetAutoRepairExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/regions/{regionId}/nodeGroups/{nodeGroupId}:setAutoRepair";
    return self;
}
@end

/// 查询 kubernetes 集群配额
@implementation  KubernetesDescribeQuotasExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/quotas";
    return self;
}
@end

/// 查询单个工作节点组详情
@implementation  KubernetesDescribeNodeGroupExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/nodeGroups/{nodeGroupId}";
    return self;
}
@end

/// 查询集群操作进度
@implementation  KubernetesDescribeProgressExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/clusters/{clusterId}/progress";
    return self;
}
@end

/// 查询节点版本
@implementation  KubernetesDescribeNodeVersionExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/nodeVersions/{nodeVersion}";
    return self;
}
@end

/// 回滚未升级完的工作节点组
@implementation  KubernetesRollbackNodeGroupUpgradeExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/regions/{regionId}/nodeGroups/{nodeGroupId}:rollbackNodeGroupUpgrade";
    return self;
}
@end

/// 终止升级
@implementation  KubernetesAbortUpgradeExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/regions/{regionId}/clusters/{clusterId}:abortUpgrade";
    return self;
}
@end

/// 查询可升级的控制节点版本
@implementation  KubernetesDescribeUpgradableMasterVersionsExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/clusters/{clusterId}/upgradableMasterVersions";
    return self;
}
@end

/// 设置自动升级
@implementation  KubernetesSetAutoUpgradeExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/regions/{regionId}/clusters/{clusterId}:setAutoUpgrade";
    return self;
}
@end

/// - 创建集群
   /// - 证书
   ///   - 关于kubernetes的证书，默认生成，不需要用户传入。
   /// - nodegroup
   ///   - cluster必须与nodeGroup进行绑定
   ///   - cluster支持多nodegroup
   ///   - 状态
   ///     - pending,reconciling,deleting状态不可以操作更新接口
   ///     - running，running_with_error状态可以操作nodegroup所有接口
   ///     - error状态只可以查询，删除
   ///     - delete状态的cluster在十五分钟内可以查询，十五分钟后无法查询到
   /// - 状态限制
   ///   - pending,reconciling,deleting状态不可以操作更新接口
   ///   - running状态可以操作cluster所有接口
   ///   - error状态只可以查询，删除
   ///   - delete状态的cluster在十五分钟内可以查询，十五分钟后无法查询到
   /// 
@implementation  KubernetesCreateClusterExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/regions/{regionId}/clusters";
    return self;
}
@end

/// 查询单个集群详情。
@implementation  KubernetesDescribeClusterExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/clusters/{clusterId}";
    return self;
}
@end

/// 修改集群的 名称 和 描述。&lt;br&gt;集群 name 和 description 必须要指定一个
@implementation  KubernetesModifyClusterExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PATCH";
    self.url = @"/regions/{regionId}/clusters/{clusterId}";
    return self;
}
@end

/// 查询集群列表
@implementation  KubernetesDescribeClustersExecutor

-(id) initWithJDCloudClient:(KubernetesClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions/{regionId}/clusters";
    return self;
}
@end
